package top.healthylife.gateway.platform.lexin.api.config;


import com.lexin.api.sdk.enums.EncTypeEnum;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import top.healthylife.gateway.core.config.BaseConfig;
import top.healthylife.gateway.dto.annotation.SystemInfo;
import top.healthylife.gateway.dto.annotation.SystemInfoField;

import java.io.Serializable;
import java.util.List;

/**
 * 此接口服务需要哪些基础信息
 * 需要加入{@link SystemInfo}这个注解,方便在使用的过程中调用此服务功能
 * 注意：这个对象的使用，不要使用自动注入，请使用SystemConfigUtils 工具类进行获取对象，开发测试的时候可以使用注入形式
 *
 * @author GaoZexi
 */
@SystemInfo(systemName = "乐信", shortName = "lexin")
@Data
@Configuration
@Accessors(chain = true)
@ConfigurationProperties(prefix = "system")
public class SystemConfig extends BaseConfig implements Serializable {
    private static final long serialVersionUID = -4735148160159528848L;

    @SystemInfoField("应用Key")
    String appKey;
    @SystemInfoField("签名密钥")
    String appSecret;
    @SystemInfoField("加密公钥")
    String publicKey;
    @SystemInfoField("业务Id")
    String businessId;
    @SystemInfoField("商户Id")
    String merchantId;
    @SystemInfoField("接口授权钥匙")
    String apiKey;
    @SystemInfoField(value = "套餐号列表",next = true)
    List<SetMealNo> setMealNos;

    /**
     * 支持明文、MD5 和 SHA-256 加密方式，不传默认明文，注意：有的业务只支持明文方式
     */
    EncTypeEnum encType = EncTypeEnum.PLAINTEXT;
}
